package com.kmxd.ams.core.common.enums;

import com.google.common.collect.ImmutableList;
import com.kmxd.ams.core.common.bo.LogArchBO;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.List;

/**
 * 题名处理 1 复制， 2移动
 *
 * @author nickbi
 */
@Getter
@AllArgsConstructor
public enum ArchOpEnum {

  /** 复制 */
  COPY(
      1,
      "复制",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build(),
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build(),
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.MANUAL.getCode())
              .opTypeName(ArchiveReceiveEnum.MANUAL.getDesc())
              .build())),
  /** 移动 */
  MOVE(
      2,
      "移动",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build(),
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build(),
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.MANUAL.getCode())
              .opTypeName(ArchiveReceiveEnum.MANUAL.getDesc())
              .build())),

  ENTRY_INITIALIZATION(
      3, "条目初始化", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  ARCH_CODE_GENERATE(
      4, "预生成档号", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  UPDATE(5, "条目保存", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  DELETE(6, "条目删除", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  INSERT(
      7,
      "插录",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  APPEND(
      8,
      "追加",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  UN_BOXING(
      9,
      "拆盒",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  BOXING(
      10,
      "装盒",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  BATCH_BOXING(
      11,
      "批量装盒",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  DETACH_FROM_VOLUME(
      12,
      "卷中拆离",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  IN_VOLUME(
      13,
      "加入到卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  BUILD_VOLUME(
      14,
      "立卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  BATCH_IN_VOLUME(
      15,
      "批量组卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  VOLUME_SORT(
      16,
      "卷内调序",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  BATCH_ARCH_CODE_GENERATE(
      17,
      "批量生成档号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  SAME_GROUP_BUILD_NUMBER(
      18,
      "同组编号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  DOC_SAME_GROUP_SORT(
      19,
      "同分类调件",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  VOL_SAME_GROUP_SORT(
      20,
      "同分类调卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  DOC_SORT(
      21,
      "调件",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),
  VOL_SORT(
      22,
      "调卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),
  BATCH_CHANGE_DOC_GROUP(
      23,
      "批量调件的分组",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),
  BATCH_CHANGE_VOL_GROUP(
      24,
      "批量调卷的分组",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),

  COPY_TO_OTHER(
      25,
      "复制到其他档案",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),

  MOVE_TO_OTHER(
      26,
      "移动到其他门类",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getCode())
              .opTypeName(ArchiveArrangeEnum.SET_CLASSIC_AND_STORAGE_TIME.getDesc())
              .build())),

  JOIN_PROJECT(
      27,
      "加入到项目",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  BATCH_UPDATE(
      28,
      "批量修改",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveReceiveEnum.MANUAL.getCode())
              .opTypeName(ArchiveReceiveEnum.MANUAL.getDesc())
              .build())),

  SUBMIT(29, "提交", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.RECEIVE).build())),
  BACK(30, "退回整理人", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.RECEIVE).build())),
  RECEIVE(31, "接收", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.RECEIVE).build())),

  ARCHIVING(32, "归档", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.RECEIVE).build())),

  ARCHIVED(33, "转已整理", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  FORWARDING(
      34, "转待整理", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  BOX_SUMMARY(
      35,
      "盒内汇总",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  VOL_SUMMARY(
      36,
      "案卷汇总",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),
  UPDATE_VOL_PAGES(
      37,
      "更新卷内页号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),

  UPDATE_FILLING(
      38, "更改档案条目整理人", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  TRANSFER_ARCHIVES(
      39, "转档案室整理", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  TRANSFER_TO_DEPARTMENT(
      40, "转部门整理", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  UPLOAD(
      41,
      "挂接电子文件",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.UPLOAD_E_FILE.getCode())
              .opTypeName(ArchiveArrangeEnum.UPLOAD_E_FILE.getDesc())
              .build())),

  BATCH_E_FILE_IMPORT(
      42,
      "批量挂接",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.UPLOAD_E_FILE.getCode())
              .opTypeName(ArchiveArrangeEnum.UPLOAD_E_FILE.getDesc())
              .build())),
  BATCH_E_FILE_DELETE(
      43,
      "删除电子文件",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.UPLOAD_E_FILE.getCode())
              .opTypeName(ArchiveArrangeEnum.UPLOAD_E_FILE.getDesc())
              .build())),
  ELECTRONIC_FILE_CONVERTED_SUCCESSFULLY(
      44, "电子文件转换成功", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  ELECTRONIC_FILE_CONVERSION_FAILED(
      45, "电子文件转换失败", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  GO_BACK_TO_ARRANGE(
      46, "回收站内还原", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  DELETE_TRASH(
      47, "回收站内删除", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  UPDATE_AUTH(
      48, "修改权限", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  MODIFY_PROJECT_ARCHIVE_SCOPE(
      49,
      "修改项目归档范围,整理规则",
      ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  PUT_ON_SHELVES(
      50, "上架", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  TAKE_OFF_THE_SHELVES(
      51, "下架", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  QUICK_RELEASE(
      52, "快速上架", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  EMPTY_TABLE(
      53, "清空阁子", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  TRANSFER_STOREHOUSE(
      54, "移库", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  FILE_IDENTIFICATION(
      55, "档案鉴定", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.IDENTIFY).build())),

  DESTROY(
      56,
      "档案销毁",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.IDENTIFY)
              .opType(ArchiveIdentifyEnum.DESTROY.getCode())
              .opTypeName(ArchiveIdentifyEnum.DESTROY.getDesc())
              .build())),
  BORROW(
      57,
      "登记借阅",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.USE)
              .opType(ArchiveUsingEnum.REGISTER_TO_BORROW.getCode())
              .opTypeName(ArchiveUsingEnum.REGISTER_TO_BORROW.getDesc())
              .build())),
  RETURN(
      58,
      "登记归还",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.USE)
              .opType(ArchiveUsingEnum.REGISTRATION_RETURN.getCode())
              .opTypeName(ArchiveUsingEnum.REGISTRATION_RETURN.getDesc())
              .build())),

  ASSISTANCE_INQUIRY(
      59,
      "档案协查",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.USE)
              .opType(ArchiveUsingEnum.ASSISTANCE_INQUIRY.getCode())
              .opTypeName(ArchiveUsingEnum.ASSISTANCE_INQUIRY.getDesc())
              .build())),

  ARCH_TRANSFER(
      60, "档案移交", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  PAST(
      61,
      "无法归还",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.USE)
              .opType(ArchiveUsingEnum.EXCEPTION_REGISTRATION.getCode())
              .opTypeName(ArchiveUsingEnum.EXCEPTION_REGISTRATION.getDesc())
              .build())),

  ADD_TO_HANDOVER(
      62, "加入移交单", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  REMOVE_HANDOVER(
      63, "移除移交单", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  TRANSFER(64, "移交", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  RECEIVE_HANDOVER(
      65, "档案移交接收", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  PUSH(66, "档案推送", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  UPDATE_IN_VOL_ARCH_CODE(
      67,
      "更新卷内档号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  COMBINATION(
      68,
      "合并组件",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  MANUAL_INIT(
      69,
      "手工著录",
      ImmutableList.of(
          LogArchBO.builder().type(ArchManageEnum.BECOMING).build(),
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.MANUAL.getCode())
              .opTypeName(ArchiveReceiveEnum.MANUAL.getDesc())
              .build())),

  DATA_MIGRATION(
      70, "数据迁移", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.SAVE).build())),

  RECEIVE_ONLINE(
      71,
      "在线接收",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.ONLINE.getCode())
              .opTypeName(ArchiveReceiveEnum.ONLINE.getDesc())
              .build())),
  RECEIVE_CONFLICT_RESOLUTION_ONLINE(
      72,
      "在线接收冲突解决",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.ONLINE.getCode())
              .opTypeName(ArchiveReceiveEnum.ONLINE.getDesc())
              .build())),

  RECEIVE_OFFLINE(
      73,
      "离线接收",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.RECEIVE)
              .opType(ArchiveReceiveEnum.OFFLINE.getCode())
              .opTypeName(ArchiveReceiveEnum.OFFLINE.getDesc())
              .build())),

  BATCH_IMPORT(
      74,
      "批量导入",
      ImmutableList.of(
          LogArchBO.builder().type(ArchManageEnum.BECOMING).build(),
          LogArchBO.builder()
              .type(ArchManageEnum.SAVE)
              .opType(ArchiveSaveEnum.ADD_ENTITY.getCode())
              .opTypeName(ArchiveSaveEnum.ADD_ENTITY.getDesc())
              .build())),
  MODIFY_BOX_NUMBER(
      75,
      "修改盒号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),

  BREAK_UP_FILES(
      76,
      "打散案卷",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  FILE_ASSOCIATION(
      77, "关联档案", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  DELETE_PROFILE_ASSOCIATION(
      78, "删除关联档案", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  BATCH_DELETE_RELATION(
      79,
      "关联设置批量删除关联档案",
      ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  AUTO_NUMBERING(
      80,
      "自动编码",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),

  ENTITY_CHANGE_REGISTRATION(
      81, "实体变更登记", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.SAVE).build())),

  ADD_ENTITY(
      82,
      "增加实体",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.SAVE)
              .opType(ArchiveSaveEnum.ADD_ENTITY.getCode())
              .opTypeName(ArchiveSaveEnum.ADD_ENTITY.getDesc())
              .build())),
  DEFECT_REGISTRATION(
      83,
      "缺损登记",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.SAVE)
              .opType(ArchiveSaveEnum.DEFECT_REGISTRATION.getCode())
              .opTypeName(ArchiveSaveEnum.DEFECT_REGISTRATION.getDesc())
              .build())),

  STORAGE_REGISTRATION(
      85,
      "入库登记",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.SAVE)
              .opType(ArchiveSaveEnum.STORAGE.getCode())
              .opTypeName(ArchiveSaveEnum.STORAGE.getDesc())
              .build())),
  OUTBOUND_REGISTRATION(
      86,
      "出库登记",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.SAVE)
              .opType(ArchiveSaveEnum.OUT_OF_WAREHOUSE.getCode())
              .opTypeName(ArchiveSaveEnum.OUT_OF_WAREHOUSE.getDesc())
              .build())),

  TURN_NOT_ARCHIVE(
      87, "转不归档", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  EXTERNAL_HANDOVER(
      88, "宗外移交", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  FILE_DISINFECT(
      89, "开始消杀档案", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  FINISH_FILE_DISINFECTING(
      90, "完成消杀档案", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  USING_APPROVAL(
      91, "利用审批", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  COPY_OUT(
      92,
      "复制外发",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.USE)
              .opType(ArchiveUsingEnum.COPY_OUT.getCode())
              .opTypeName(ArchiveUsingEnum.COPY_OUT.getDesc())
              .build())),

  KEEP_SECRET(
      93,
      "继续保密",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.IDENTIFY)
              .opType(ArchiveIdentifyEnum.KEEP_SECRET.getCode())
              .opTypeName(ArchiveIdentifyEnum.KEEP_SECRET.getDesc())
              .build())),
  CHANGE_SECRET(
      94,
      "密级变更",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.IDENTIFY)
              .opType(ArchiveIdentifyEnum.SECRET_CHANGE.getCode())
              .opTypeName(ArchiveIdentifyEnum.SECRET_CHANGE.getDesc())
              .build())),
  OPEN_SECRET(
      95,
      "公开",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.IDENTIFY)
              .opType(ArchiveIdentifyEnum.SECRET_OPEN.getCode())
              .opTypeName(ArchiveIdentifyEnum.SECRET_OPEN.getDesc())
              .build())),
  KEEP_SAVING(
      96,
      "继续保存",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.IDENTIFY)
              .opType(ArchiveIdentifyEnum.KEEP_SAVING.getCode())
              .opTypeName(ArchiveIdentifyEnum.KEEP_SAVING.getDesc())
              .build())),

  VALUE_APPRAISAL_APPROVAL(
      97, "价值鉴定审批", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  DECRYPTION_APPRAISAL_APPROVAL(
      98, "升降解密鉴定审批", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  RE_IDENTIFY(
      99, "重新标识", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  COMPLETE_THE_VALUE_APPRAISAL(
      100, "完成价值鉴定", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),
  FINISH_DECRYPTION_APPRAISAL_APPROVAL(
      101, "完成升降解密鉴定", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  FOUR_SEX_TEST(
      102, "四性检测", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.ARRANGE).build())),

  DATA_EXPORT(103, "数据导出", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.USE).build())),
  PAGE(105, "分页查询", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.USE).build())),
  LIST(106, "列表查询", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.USE).build())),
  VIEW(107, "浏览", ImmutableList.of(LogArchBO.builder().type(ArchManageEnum.USE).build())),

  DETACH_FROM_PROJECT(
      108,
      "项目中拆离",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SAVING_DEPT.getCode())
              .opTypeName(ArchiveArrangeEnum.SAVING_DEPT.getDesc())
              .build())),

  UPDATE_ARCH_CODE(
      67,
      "更新档号",
      ImmutableList.of(
          LogArchBO.builder()
              .type(ArchManageEnum.ARRANGE)
              .opType(ArchiveArrangeEnum.SERIAL_NUMBER.getCode())
              .opTypeName(ArchiveArrangeEnum.SERIAL_NUMBER.getDesc())
              .build())),
  ;
  private Integer code;
  private String desc;

  /** 档案管理类型 <管理类型：《维护类型,维护名称》 */
  private List<LogArchBO> typeList;

  ArchOpEnum(Integer code, String desc) {
    this.code = code;
    this.desc = desc;
  }
}
